package modelo;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class CategoriaDAO {

	public CategoriaDAO() {
		super();
	}
	public int tamañoTabla(){
		String tiraSQL = "select count(*) as num from categorias";
		ResultSet resultSet = Conexion.consultar(tiraSQL);
		int tam= 0;
		try {
			while (resultSet.next()){
				tam = resultSet.getInt("num");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return tam;
	}
	public Categoria getCategoriaPorNombre(String valor){
		String tiraSQL="select * from categorias where (nombre='"+valor+"')";
		ResultSet resulSet = Conexion.consultar(tiraSQL);
		Categoria categoria = null;
		try{
			while (resulSet.next()){
				categoria = new Categoria();
				int codcat = resulSet.getInt("codcat");
				String nombre = resulSet.getString("nombre");
				String e = resulSet.getString("estatus");
				categoria.setCodC(codcat);
				categoria.setNombre(nombre);
				categoria.setEstatus(e);
			}
		}catch (SQLException e){
			e.printStackTrace();
		}
		return categoria;
	}
	public Categoria getCategoriaPorCodigo(int valor){
		String tiraSQL="select * from categorias where (codcat='"+valor+"')";
		ResultSet resulSet = Conexion.consultar(tiraSQL);
		Categoria categoria = null;
		try{
			while (resulSet.next()){
				categoria = new Categoria();
				int codcat = resulSet.getInt("codcat");
				String nombre = resulSet.getString("nombre");
				String e = resulSet.getString("estatus");
				categoria.setCodC(codcat);
				categoria.setNombre(nombre);
				categoria.setEstatus(e);
			}
		}catch (SQLException e){
			e.printStackTrace();
		}
		return categoria;
	}
	public void incluir(Categoria C){
		String tiraSQL = "insert into categorias" +
				"(nombre) values" +
				"('"+C.getNombre()+"')";
		Conexion.ejecutar(tiraSQL);
	}
	public void actualizar(Categoria C){
		String tiraSQL = "update categorias set nombre='"+C.getNombre()+"' where (codcat='"+C.getCodC()+"')";
		Conexion.ejecutar(tiraSQL);
	}
	public void eliminar(Categoria C){
		String tiraSQL = "delete from categorias where codcat='"+C.getCodC()+"'";
		Conexion.ejecutar(tiraSQL);
	}
	public List<Categoria> consultar(){
		List<Categoria> categorias =  new ArrayList<Categoria>();
		String tiraSQL = "select * from categorias";
		ResultSet resultSet = Conexion.consultar(tiraSQL);
		try{
			while (resultSet.next()){
				int codcat = resultSet.getInt("codcat");
				String nombre = resultSet.getString("nombre");
				String e = resultSet.getString("estatus");
				Categoria categoria = new Categoria();
				categoria.setCodC(codcat);
				categoria.setNombre(nombre);
				categoria.setEstatus(e);
				categorias.add(categoria);
			}
		}catch (SQLException e){
			e.printStackTrace();
		}
		return categorias;
	}
}
